رباتیک والکترونیک روبواچ پیRoboHp رباتیک والکترونیک |
||||||||||
جمعه 27 بهمن 1391برچسب:آموزش برنامه نویسی ربات مسیریاب,آموزش برنامه نویسی به زبانc,آموزش کدویژن,آموزش برنامه نویسی,robohp, :: 19:47 :: نويسنده : پهلوان پور
به نام خدا با سلام خدمت دوستان خوبم در اين جلسه به مبحث ميكروكنترلر برميگرديم و در مورد PWM و كاربردهاي آن در ساخت ربات توضيح خواهيم داد.
كنترل سرعت ربات، در همهي سطوح رباتيك اهميت بسيار زيادي دارد، از رباتهاي مسيرياب ساده گرفته تا رباتهاي فوتباليست. ما تا كنون ياد گرفتهايم كه چگونه ميتوان به موتور دستور حركت يا توقف داد، اما راهي براي كنترل سرعت موتور ياد نگرفتهايم.
PWM تكنيكي است كه به كمك آن ميتوانيم ولتاژ پايههاي خروجي ميكروكنترلر، و در نتيجه سرعت موتور يا ساير قطعات جانبي كه به ميكروكنترلر متصل ميشود را كنترل كنيم.
ميدانيم كه ولتاژ در پايههاي خروجي ميكروكنترلر يا 0 است يا 5 ولت، اما براي كنترل سرعت موتور، بايد بتوانيم حداقل ولتاژ يكي از پايهها را بين 0 تا 5 تغيير دهيم. PWM روشي است تا ما بتوانيم با استفاده از همين پايهي خروجي معمولي، به نوعي ولتاژ را بين 0 تا 5 ولت تغيير دهيم. در اين روش، ما با سرعت بالايي سطح ولتاژ خروجي را 0 و بلافاصله 1 ميكنيم(مثلاً هزار بار در ثانيه)، نمودار ولتاژ خروجي بر حسب زمان به شكل زير ميشود.
در شكل بالا جمع 2 بازهاي كه با فلشهاي 2طرفه نشان داده شده است، (به عنوان مثال) 10 ميكرو ثانيه است. كه 5ميكرو ثانيه خروجي 1 و سپس 5ميكرو ثانيه 0 ميشود. اما همانطور كه گفته شد، اين عمل هزاران بار در ثانيه تكرار ميشود، اما آيا موتور نيز به همين تعداد در ثانيه روشن و خاموش ميشود؟ جواب منفيست، اتفاقي كه روي ميدهد اين است كه موتور، اين موج را در درون خود به نوعي ميانگين گيري ميكند و در حقيقت آنرا به شكل زير مي بيند:
به همين ترتيب ميتوان هر ولتاژي بين 0 تا 5 ولت را بر روي خروجي مورد نظر ايجاد كرد. اگر بخواهيم ولتاژي بالاتر از 2.5 ولت داشته باشيم، بايد طول بازههاي زمانياي كه خروجي 1 است را نسبت به بازههايي كه خروجي 0 است بيشتر كنيم. به عنوان مثال براي ايجاد ولتاژ 2.5 ولت، بايد 5 ميكرو ثانيه سطح ولتاژ خروجي 1 باشد، سپس 5 ميكرو ثانيه سطح ولتاژ 0 شود تا موجي به شكل بالا ايجاد شود. يا به عنوان مثالي ديگر، اگر بخواهيم در خروجي ولتاژ 4 ولت داشته باشيم، بايد بايد 8 ميكرو ثانيه سطح ولتاژ خروجي 1 باشد، سپس 2 ميكرو ثانيه سطح ولتاژ 0 شود، تا ولتاژ پايهي خروجي مورد نظر 4 ولت باشد. (طول كل بازه) / ( طول بازهاي كه خروجي 1 است) پس طبق رابطهي بالا،براي ايجاد ولتاژ 4 ولت، ميتوان به جاي استفاده از بازههاي 8 و 2 ميكرو ثانيهاي، از بازههاي 4 و 1 ميكرو ثانيهاي استفاده كرد. (يعني 4ميكرو ثانيه 5ولت، 1 ميكرو ثانيه 0 ولت) زيرا: 2÷ 8 = 1÷4
while(1) { PORTB.4=1; 5 ميكرو ثانيه تاخير PORTB.4=0; 5 ميكرو ثانيه تاخير } در بالا يك حلقهي بينهايت تعريف شده است كه بر روي پايهيB.4، يك PWM براي 2.5 ولت ايجاد ميكند. اگر مطالب اين جلسه كمي پيچيده به نظر ميرسند جاي نگراني نيست، زيرا مبحث PWM مبحث گستردهايست و كاربردهاي زيادي در صنعت دارد و فقط محدود به ميكروكنترلر هم نميشود. پس طبيعيست كه سطح مطالب كمي بالا باشد و دوستان نيز گاهاً در درك مفاهيم دچار مشكل شوند. پس دوستان عزيز اگر سوال يا مطلب خاصي در اين رابطه دارند حتماً با ما در ميان بگذارند. شاد و پيروز باشيد
نظرات شما عزیزان:
درباره سایت به فروشگاه رباتیک والکترونیک RoboHpخوش آمدید آخرین مطالب پيوندها ![]() نويسندگان |
||||||||||
![]() |